import os
import sys
module_path = sys.path.append('/home/dpirvu/.local/lib/python3.8/site-packages/')
module_path = sys.path.append('/home/dpirvu/.local/bin/')
for i in sys.path:
i = i.replace("8", "7")
if i not in sys.path:
sys.path.append(i)
print(i)
import numpy as np
import random
import math
import statistics as stat
import matplotlib
import matplotlib.pyplot as plt
import scipy as scp
import scipy.optimize as sco
import scipy.signal as scs
import scipy.special as ssp
import scipy.integrate as sci
from itertools import zip_longest, groupby, cycle
from scipy.ndimage import gaussian_filter1d
from uncertainties import ufloat
np_load_old = np.load
np.load = lambda *a,**k: np_load_old(*a, allow_pickle=True, **k)
nLat = 1024
nTime = 512 #nLat*2
nSims = 400
phi0 = 1.; m2eff = 1.; lamb = 1.
lenLat = 100.; nCols = 2
nyq = nLat//2+1
spec = nyq
alpha = 8
dx = lenLat/nLat; print(dx)
dk = 2.*np.pi/lenLat
dt = dx/alpha
dtout = dt*alpha
test_sim_location = lambda nT, nL, tem, phi, lam, m2, gam, sim: '/gpfs/dpirvu/thermal_bubbles/phi4_test_classical_solution_with_fluctuations_m2{:.4f}'.format(m2)+'_gam{:.4f}'.format(gam)+'_t'+str(nT)+'_x'+str(nL)+'_temp{:.4f}'.format(tem)+'_phi0{:.4f}'.format(phi)+'_lamb{:.4f}'.format(lam)+'_sim'+str(sim)+'_fields.dat'
def test_extract_sim(nT, nL, tem, phi, lam, m2, gam, sim):
data = np.genfromtxt(test_sim_location(nT, nL, tem, phi, lam, m2, gam, sim))
return np.asarray([np.reshape(data[:,col], (nT, nL)) for col in range(nCols)])#[:,:129,:]
freqs = np.fft.fftshift(np.fft.fftfreq(nLat, d=dx))*2*np.pi
norm = 1./ phi0 / np.sqrt(2.*lenLat)
omega = freqs**2. + m2eff
spectral_field = lambda tem: np.asarray([norm * np.sqrt(2./(np.exp(omega[k]**0.5/tem) - 1.)) / omega[k]**0.25 if k != nLat//2 else 0 for k in range(nLat)])
th_masses = lambda tem: -m2eff + 0.5 * lamb * np.sum( np.abs(spectral_field(tem))**2. ) / np.sqrt(2)
temp = 1
gamma = 0.
all_data = np.asarray([test_extract_sim(nTime, nLat, temp, phi0, lamb, m2eff, gamma, sim) for sim in range(nSims)])
if True:
div = 10
fig, ax = plt.subplots(int(np.ceil(nSims/div)), div, figsize = (div*4, 4.*(nSims+1)//div))
io = -1
for sim in range(nSims):
if sim % div == 0: io += 1
im0 = ax[io][sim%div].imshow(all_data[sim][0], aspect='auto', interpolation='none', origin='lower')
clb = plt.colorbar(im0, ax = ax[io][sim%div])
ax[io][sim%div].set_title('sim = '+str(sim))
plt.suptitle('T = '+str(temp)+f', $\gamma$ = '+str(gamma), weight=10, size='xx-large', y=1)
plt.tight_layout(); plt.show()